package com.dongjiantong.farmrecords.mapper;


import com.dongjiantong.farmrecords.model.FarmRecordsProduction;
import com.dongjiantong.mybatis.MyMapper;

import java.util.List;
import java.util.Map;

public interface FarmRecordsProductionMapper extends MyMapper<FarmRecordsProduction> {
    /**
     * 根据条件查询记录
     * @param map
     * @return
     */
    List<FarmRecordsProduction> selectByMap(Map map);

    /**
     * 新增一条记录
     * @param farmRecordsProduction
     * @return
     */
    int createOne(FarmRecordsProduction farmRecordsProduction);

    /**
     * 根据前缀获取表中最大单据号
     * @param prefix 单据号前缀
     * @return
     */
    String findMaxNumber(String prefix);

    /**
     * 根据单据类型和单据id更新delete_flag
     *
     * @param paramMapOfUpdateProduction 参数
     */
    void updateDeleteFlagByReportIdAndReportType(Map<String, Object> paramMapOfUpdateProduction);
    /**
     * 存栏按数量变化统计
     * @param map
     * @return
     */
    Integer selectQuantityChange(Map map);

    /**
     * 根据养殖场id查询的存栏变动数
     * @param map
     */
    Integer selectQuantityChangeByFarmId(Map<String,Object> map);

    /**
     * 养殖端按照单据状态分页查询列表
     * @param map
     * @return
     */
    List<FarmRecordsProduction> selectListByStatus(Map<String, Object> map);

    /**
     * 政府人员根据(二级)畜种查看其管辖区域内 生产单据的合计数
     * @param map
     * @return
     */
    Integer selectQuantityChangeByGovAndBreedType(Map<String, Object> map);

    /**
     * 根据日期获取出生,卖出和死淘数
     */
    Map<String,Object> selectQuantityByFarmId(Map<String, Object> map);
}